宏基因组分析实战教程1. 背景知识
上次我写的学习经验和推荐的教程——《微生物组入门必读+宏基因组实操课程=新老司机赶快上车》,小伙伴们当天阅读破2700+人次,3.5天破3000+,达到了宏基因组快车满三千人发车的要求。我也按约定继续分享宏基因组分析实战教程。
喜欢本教程的小伙伴,请务帮助拉到文末点个赞,鼓励我继续写作的方式,你懂的。
本系统教程以2017年9月26-30日在 UC Davis举办的宏基因组Workshop的学习笔记为主线。课程介绍详见 《宏基因组分析实操课程》
同时结合笔者的经验,对教程操作过程中可能遇到的问题进行说明并提供解决方法,并对本教程没有涉及而又很常用的分析进行专题讲解,预计共分20次课程,每周二 and/or 五更新。
1. 课程简介
原文链接:https://2017-cicese-metagenomics.readthedocs.io/en/latest/welcome.html
1. 学习目标
了解相关工具
获得命令行的一些经验
基本完成数据分析
简介科学数据分析的套路
2. 安全空间与行为准则
目的是提供安全且友好的学习环境
行为准则请阅读《木匠软件》
鼓励提出问题,可能别人也需要
3. 主讲介绍
Harriet Alexander - postdoc at UC Davis.
Phil Brooks - postdoc at UC Davis.
Titus Brown - prof at UC Davis in the School of Vet Med.
4. 亚马逊云计算
软件安装简单
大数据分析方便
爆发力强
无地域限制
5. 便签规则
无便签:正在进行中
绿便签:一切顺利
红便签:需要帮助
练习使用云计算平台
官方提供了一种平台我没有使用成功,笔者也尝试了几种都没有成功,或没有免费版。这里自己有服务器的直接使用即可,没有服务器的人推荐使用阿里云(国内速度快,朋友用过体验还不错,学生有优惠)。
Jetstream计算平台
此节按教程操作页无法登陆,可能不适合国内用户或需要授权
https://2017-cicese-metagenomics.readthedocs.io/en/latest/jetstream/boot.html
注册:访问 https://use.jetstream-cloud.org/application/images , 点login,
登陆默认为XSEDE的账号,但也支持Google和ORCiD iD,这里我用google,再点create new user, 使用单位邮箱注册,注册设置Key,返回邮件后继续注册。
我的Username为microking,密码为大写+小写+数字才合格。
以后访问 http://portal.xsede.org 登陆
访问 https://use.jetstream-cloud.org/application/images
亚马逊云
https://amazonaws-china.com/cn/
提供每月750h,1G内存,5G存储,100W免费请求
我测试时注册一直没成功,有国内的服务器应该可用的,可能是最近18+1大的原因
阿里云
https://www.aliyun.com/ 直接使用淘宝账户登陆,学生可购买9.9每月的1折优惠,1核,2G内存,1M带宽,40G存储;学习数据分析应该够用了。如果不是学习,还是建议自己买高配电脑或服务器吧,好点配置三年租金和服务器等价了。
测试数据
刘博士帮助把测试数据建立了一个百度云同步共享文件夹,有非常多的好处,请读完下文再决定是否下载:
下载被墙的数据;很多数据存在google, amazon的部分服务器国内无法直接下载,而服务器一般科学上网不方便,下载数据困难。大家下载失败的数据请到共享目录中查找;
预下载好的软件、数据库;有很多需要下载安装、注册的软件(在线安装包除外),其实已经在共享目录了,节约小伙伴申请、下载的时间;
数据同步更新;任何笔记或教程不可避免的有些错误、或不完善的地方,后期通过大家的测试反馈问题,我可以对教程进行改进。共享目录不建议全部下载或转存,因为文件体积非常大,而且还会更新。你转存的只是当前版本的一个备份,就不会再更新了。建议直接在文件夹中每次逐个下载需要的文件,也对文件有一个认识过程。
方便结果预览和跳过问题步骤;服务器Linux在不同平台和版本下,软件安装和兼容性问题还是很多的,而且用户的权限和经验也会导致某些步骤相关软件无法成功安装(有问题建议先google、再找管理员帮助;想在群里提问或联系作者务必阅读《如何优雅的提问》)。在百度云共享目录中,有每一步的运行结果,读者可以下载查看分析结果,并可基于此结果进一步分析。不要纠结于某一步无法通过,重点是了解整个流程的分析思路。
最后送上本教程使用到的所有文件同步共享文件夹链接:http://pan.baidu.com/s/1hsIjosk 密码:y0tb 。
Shell入门
需要有服务器实际操作,上面原作者提供的云无法使用,阿里云需付费,如需要读者可自行购买或在自己的linux服务器上使用。
Shell学习材料推荐
Shell基本命令:常用入门教程 https://github.com/swcarpentry/DEPRECATED-boot-camps/blob/master/shell/shell_cheatsheet.md
Shell小抄:常用命令熟背 https://fosswire.com/post/2007/08/unixlinux-command-cheat-sheet/
Shell宝典:百科全书,资料查阅;https://explainshell.com/
图1. 学习程序的重要性
初识Shell
# 下载课程相关文件
git clone https://github.com/edamame-course/edamame-data.git
# 进入课程目录
cd edamame-data
# 进入本节目录
cd shell
# 查看当前目录文件
ls
显示命令参数
# 查看命令的帮助
man ls
查找文件
# 区分目录和文件
ls -F
# 查看当前目录下的某文件
find -name youfoundit.txt
# tab键补全命令和文件名,如下命令再按tab,是不是补全了文件名
ls S
# 路径常用字符
cd . # 当前目录
cd .. # 上级目录
cd ~ # 家目录
通配符*
代表一个或多个字符,?
代表1个字符
ls /usr/bin/*.sh # 查看所有以.sh结尾的文件
ls /usr/bin/*.? # 显示扩展名只有1个字符的文件
历史命令
Ctrl+C # 终止当前命令,打开新提示符
Ctrl+R # 反向索引历史命令
history # 每条命令有数字编号
!2017 # 数字是显示的编号,可执行对应的命令
查看文件内容
cd MiSeq # 进入测试数据目录
cat C01D01F_sub.fastq # 显示文件内容到屏幕
less C01D01F_sub.fastq # 按页查看内容
head -n 1 C01D01F_sub.fastq # 查看第1行,默认前10行
tail -n 1 C01D01F_sub.fastq # 查看最后1行,默认后10行
进入less后的基本操作
“space”: 向前翻页
“b”: 后退
“g”: 跳转至开头
“G”: 跳转至结尾
“q”: 退出
检索文件
grep 22029:7208 C01D01F_sub.fastq # 查找某行
grep -A 3 22029:7208 C01D01F_sub.fastq # 查找某行,并显示接下来三行
# 此命令可用于按4行筛选fastq文件,注意连续匹配会出现 -- 分隔符,用grep -v '--'去除
重定向
grep -B 2 TTATCCGGATTTATTGGGTTTAAAGGGT *.fastq > good-data2.txt # 将检索结果保存至文件,-B 2同时输出匹配行前面两行
grep TTATCCGGATTTATTGGGTTTAAAGGGT *.fastq | less # 保存结果分页查看
grep TTATCCGGATTTATTGGGTTTAAAGGGT *.fastq | wc -l # 保存结果统计行数
文件操作
cp good-data2.txt good-data2.backup.txt # 复制文件
mkdir backup # 创建目录
mv good-data2.backup.txt backup/ # 移动文件至目录
mv backup/good-data2.backup.txt backup/good-data2.backup_IMPORTANT # 文件重命名
rm backup/good-data2.backup_IMPORTANT # 删除文件
运行程序
cd .. # 退回上一级shell目录
which ls # 查看程序位置
echo $PATH # 查看环境变量
hello.sh # 报错,找不到程序
./hello.sh # 必须有程序的绝对,或相对位置才可以
查找文件
find . -print # 查看当前目录及以下所有文件
find . -type f -print # 只找文件
find . -type f -name "*1*" # 查找名中含1的文件
find . -type f -name "*1*" -or -name "*2*" -print # 查找名中含1或2的文件
find . -type f -name "*1*" -and -name "*2*" -print # 查找名中含1和2的文件
实战练习:运行本地blast
# 更新软件库并安装blast,已经安装的请跳过
sudo apt-get update && sudo apt-get -y install python ncbi-blast+
# 创建本实验目录并进入
mkdir blast
cd blast
# 下载测试数据
curl -O ftp://ftp.ncbi.nih.gov/refseq/M_musculus/mRNA_Prot/mouse.1.protein.faa.gz
curl -O ftp://ftp.ncbi.nih.gov/refseq/M_musculus/mRNA_Prot/mouse.2.protein.faa.gz
curl -O ftp://ftp.ncbi.nih.gov/refseq/M_musculus/mRNA_Prot/mouse.3.protein.faa.gz
curl -O ftp://ftp.ncbi.nih.gov/refseq/D_rerio/mRNA_Prot/zebrafish.1.protein.faa.gz
# 查看下载结果
ls -l
# 解压
gunzip *.faa.gz
head mouse.1.protein.faa
head -11 mouse.1.protein.faa > mm-first.fa
# 以1为例建数据库
makeblastdb -in zebrafish.1.protein.faa -dbtype prot
# 比对某条序列至数据库,结果至屏幕
blastp -query mm-first.fa -db zebrafish.1.protein.faa
# 比对某条序列至数据库,结果至文件
blastp -query mm-first.fa -db zebrafish.1.protein.faa -out mm-first.x.zebrafish.txt
less mm-first.x.zebrafish.txt
# 分析250条序列
head -500 mouse.1.protein.faa > mm-second.fa
blastp -query mm-second.fa -db zebrafish.1.protein.faa -out mm-second.x.zebrafish.txt
less mm-second.x.zebrafish.txt
# 输出表格结果 -outfmt 6
blastp -query mm-second.fa -db zebrafish.1.protein.faa -out mm-second.x.zebrafish.tbl.txt -outfmt 6
# less -S不换行查看
head mm-second.x.zebrafish.tbl.txt | less -S
猜你喜欢
写在后面
为鼓励读者交流、快速解决科研困难,我们建立了"宏基因组"专业讨论群,目前己有国内五十位PI,六百多名一线科研人员加入。参与讨论,获得专业指导、问题解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。技术问题寻求帮助,首先阅读如何优雅的提问学习解决问题思路,仍末解决推荐微信群交流,复杂问题请在生信技能树-微生物组版块(http://www.biotrainee.com/forum-88-1.html) 发贴,并转发链接入群,问题及解答方便检索,造福后人。
学习16S扩增子、宏基因组科研思路和分析技术,快关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读